package com.arpa.wms.domain.vo;

import com.arpa.wms.domain.enums.BillingUnitEnum;
import com.arpa.wms.domain.enums.StorageFeeTypeEnum;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * <p>
 * 仓库计费排期
 * </p>
 *
 * @author LEO
 * @since 2020-11-17
 */
@Data
@ApiModel(value="ContractSchedulingVO对象", description="仓库计费排期")
public class ContractSchedulingVO implements Serializable {


    @ApiModelProperty(value = "标识")
    private String code;


    @ApiModelProperty(value = "所属机构")
    private String groupCode;

    @ApiModelProperty(value = "合同标识")
    private String contractCode;

    @ApiModelProperty(value = "仓库标识")
    private String warehouseCode;

    @ApiModelProperty(value = "仓库名称")
    private String warehouseName;

    @ApiModelProperty(value = "入驻商")
    private String shipmentCode;

    @ApiModelProperty(value = "货主名称")
    private String shipmentName;

    @ApiModelProperty(value = "库存标识")
    private String inventoryCode;

    @ApiModelProperty(value = "入库单号")
    private String inboundCode;

    @ApiModelProperty(value = "入库单创建日期")
    private LocalDate gmtInboundCreated;


    @ApiModelProperty(value = "计费日期")
    private LocalDate gmtBilling;


    @ApiModelProperty(value = "开始时间")
    private LocalDate gmtSettledBegin;

    @ApiModelProperty(value = "仓储费类型：WHOLE（包仓），SCATTERED（零散）")
    private StorageFeeTypeEnum storageFeeType;

    @ApiModelProperty(value = "计费单位：包仓（LOCATION（库位），AREA（面积）），零仓（PIECE（件），TON（吨），LOCATION（库位））")
    private BillingUnitEnum billingUnit;

    @ApiModelProperty(value = "单价")
    private BigDecimal unitPrice;

    @ApiModelProperty(value = "数量")
    private BigDecimal quantity;

    @ApiModelProperty(value = "最小计费量")
    private BigDecimal minBillingVolume;

    @ApiModelProperty(value = "状态：0未计费，1已计费")
    private String status;

    @ApiModelProperty(value = "商品code")
    private String goodsCode;

    @ApiModelProperty(value = "商品编码")
    private String goodCode;


    @ApiModelProperty(value = "商品名称")
    private String goodsName;


    @ApiModelProperty(value = "重量")
    private BigDecimal weight;

    @ApiModelProperty(value = "收货批次")
    private String receiveLot;
}
